import 'dart:convert';
import 'package:flutter_app/generated/json/base/json_field.dart';
import 'package:flutter_app/generated/json/update_app_entity.g.dart';

///
/// fir.im接口返回值  版本查询
/// 调用检测更新接口会返回最新版本的版本信息。
///
/// 接口反馈的版本信息与应用的当前版本进行比较，可以实现应用检测更新功能。
///
///
@JsonSerializable()
class UpdateAppEntity {
  String? name; // 应用名称
  String? version; // 版本
  String? changelog; // 更新日志
  String? versionShort; // 版本编号(兼容旧版字段)
  String? build; // 编译号
  @JSONField(name: "install_url")
  String? installUrl; // 安装地址(新增字段)
  @JSONField(name: "update_url")
  String? updateUrl; // 更新地址(新增字段)
  UpdateAppBinary? binary; // 更新文件的对象，仅有大小字段fsize

  UpdateAppEntity();

  factory UpdateAppEntity.fromJson(Map<String, dynamic> json) =>
      $UpdateAppEntityFromJson(json);

  Map<String, dynamic> toJson() => $UpdateAppEntityToJson(this);

  @override
  String toString() {
    return jsonEncode(this);
  }
}

@JsonSerializable()
class UpdateAppBinary {
  String? fsize;

  UpdateAppBinary();

  factory UpdateAppBinary.fromJson(Map<String, dynamic> json) =>
      $UpdateAppBinaryFromJson(json);

  Map<String, dynamic> toJson() => $UpdateAppBinaryToJson(this);

  @override
  String toString() {
    return jsonEncode(this);
  }
}
